1. Technical Field
The present invention relates generally to input and output for computer systems, and more specifically to a method for providing data transfer over multiple input/output channels.
2. Description of the Related Art
For many computer system applications, the main performance bottleneck is data input and output. The data transfer rate between the processor and a storage device, such as a disk, is much slower than the execution rate of the application.
In larger computer systems, access to multiple disk storage devices is often available. Each device can be accessed by an input/output channel. With proper design, an application can use more than one channel for input and output to a single logical file. This is done by splitting a logical file up into several physical files each containing part of the logical file, with each physical file preferably residing on a separate storage device. This has the effect of increasing the input or output rate, since simultaneous input/output can be performed in parallel over the multiple channels. The technique of splitting a file over multiple channels for input/output is sometimes known as "striping."
Implementation of file striping can be difficult if it is done by an application designer. Striping is preferably accomplished by supplying appropriate facilities as part of the library routines within the operating system. However, striping often cannot be fully utilized when it is introduced into an existing installation for several reasons. First, application programmers must be aware of the fact that striping is now available and remember to use the correct commands to invoke it. In addition, existing applications cannot take advantage of the new capability unless they are modified and recompiled.
It would be desirable to provide input/output striping to existing applications without modification of the applications. It would also be desirable to allow application developers to take advantage of file striping without having to learn new programming techniques.